package com.zmn.oms.common.constant;

import com.google.common.collect.Lists;
import com.zmn.consts.GlobalConsts;
import com.zmn.oms.common.dto.MessageTemplate;

import java.util.List;

/**
 * 类描述： 微信短信移动消息规则 RuleId 配置
 * 扩展可配置消息规则id
 * @see  com.zmn.oms.common.constant.MessageConsts
 * @author yule
 * @date 2020/12/26 21:18
 */
public class MessageRuleIdConsts {

    /**
     * 描述：1.自定义 全局订单消息节点标示 （如需新加订单节点需要新加节点标示）
     * 2.自动触发节点为日志logType类型
     *
     * @see com.zmn.oms.common.constant.OrderLogConsts#ORDER_LOG_TYPE_TAKE
     */
    public final static int MESSAGE_GLOBAL_VISIT_TIME_OUT_NODE_MARK = 99981; // 迟到安抚
    public final static int MESSAGE_GLOBAL_RETAKE_NODE_MARK = 99998; // 改派后再次接单节点
    public final static int MESSAGE_GLOBAL_UPDATE_DUTYTIME_NODE_MARK = 99999; // 改约
    public final static int MESSAGE_GLOBAL_CONFIRM_NO_LOGIN_NODE_MARK = 110000; // 订单分单未登入全局节点标示
    public final static int MESSAGE_GLOBAL_QUOTATION_NODE_MARK = 110010; // 计价器定价节点
    public final static int MESSAGE_GLOBAL_QUOTATION_CONFIRM_NODE_MARK = 110020; // 计价器确认报价/费用明细节点

    /**
     * 描述：啄木鸟消息 短信/微信 ruleId
     */
    public final static int ZMN_MSG_RULEID_ASSIGN_NO_LOGIN = 10073; // 订单分单-未登录
    public final static int ZMN_MSG_RULEID_ASSIGN = 10075; // 订单分单 (确认节点)
    public final static int ZMN_MSG_RULEID_TAKE = 10080; // 工程师领单
    public final static int ZMN_MSG_RULEID_MASTER_VISIT = 10084; // 工程师上门
    public final static int ZMN_MSG_RULEID_COMPLETE = 10097; // 工单完成
    public final static int ZMN_MSG_RULEID_CANCEL = 10122; // 工单取消
    public final static int ZMN_MSG_RULEID_WARRANTY_CARD = 10121; // 保修卡
    //public final static int ZMN_MSG_RULEID_WARRANTY2 = 1008; // 收据
    public final static int ZMN_MSG_RULEID_VVIP = 10161; // 要客
    public final static int ZMN_MSG_RULEID_DEPOSIT_PAY = 10095;// 定金待支付：
    public final static int ZMN_MSG_RULEID_ORDER_PAY = 10096; // 完成待支付：
    public final static int ZMN_MSG_RULEID_QUOTATION = 10085; // 计价器定价：
    public final static int ZMN_MSG_RULEID_QUOTATION_CONFIRM = 10088;  //计价器确认(费用明细)
    public final static int ZMN_MSG_RULEID_WARRANTY_CARD_ADD = 10167; // 保修卡延保消息
    public final static int ZMN_MSG_RULEID_SERVICE_COMPLETE_CONFIRM = 12121; // 完成待确认


    public final static int ZMN_MSG_RULEID_PLATREVIEW = 10164;  //特权订单后台审核模板

    /**
     * 描述：言而有信消息 短信/微信 ruleId
     */
    public final static int YEYX_MSG_RULEID_ASSIGN_NO_LOGIN = 10083; // 订单分单-未登录
    public final static int YEYX_MSG_RULEID_ASSIGN_TYPE_OUT = 0; // 订单分单(保外订单)  -- 现暂无 2020.10.29 逻辑调整
    public final static int YEYX_MSG_RULEID_ASSIGN_TYPE_IN = 0; // 订单分单(保内订单)  -- 现暂无 2020.10.29 逻辑调整
    public final static int YEYX_MSG_RULEID_TAKE_TYPE_OUT = 10086; // 工程师领单（保外）-- 现发送分单消息 2020.10.29 逻辑调整
    public final static int YEYX_MSG_RULEID_TAKE_TYPE_IN = 10087; // 工程师领单（保内）-- 现发送分单消息 2020.10.29 逻辑调整
    public final static int YEYX_MSG_RULEID_MASTER_VISIT_TYPE_IN = 10090; // 工程师上门(保内)
    public final static int YEYX_MSG_RULEID_COMPLETE_TYPE_OUT = 0; // 工单完成(保外订单)
    public final static int YEYX_MSG_RULEID_COMPLETE_TYPE_IN = 10125; // 工单完成(保内订单)
    public final static int YEYX_MSG_RULEID_CANCEL_TYPE_OUT = 10091; // 工单取消(保外)
    public final static int YEYX_MSG_RULEID_CANCEL_TYPE_IN = 10092; // 工单取消(保内)
    public final static int YEYX_MSG_RULEID_WARRANTY_CARD_TYPE_IN = 0; // 保修卡(保内)

    //  32854、34522渠道特殊处理模板ruleId
    public final static int YEYX_MSG_RULEID_SPECIAL_CHANNEL_MASTER_VISIT_TYPE_IN = 10192; // 上门保内
    public final static int YEYX_MSG_RULEID_SPECIAL_CHANNEL_COMPLETE_TYPE_IN = 10191; // 完成保内
    public final static int YEYX_MSG_RULEID_SPECIAL_CHANNEL_CANCEL_TYPE_IN = 10193; // 取消保内


    /**
     * 描述：一步维修消息 短信/微信 ruleId(暂未定义出来)
     */
    public final static int SAAS_MSG_RULEID_ASSIGN = 0; // 订单分单
    public final static int SAAS_MSG_RULEID_ASSIGN_NO_LOGIN = 0; // 订单分单-未登录
    public final static int SAAS_MSG_RULEID_TAKE = 0; // 工程师领单
    public final static int SAAS_MSG_RULEID_MASTER_VISIT = 0; // 工程师上门
    public final static int SAAS_MSG_RULEID_COMPLETE = 0; // 工单完成
    public final static int SAAS_MSG_RULEID_CANCEL = 0; // 工单取消

    /**
     * 描述：川南环保消息 短信/微信 ruleId
     */
    public final static int CNHB_MSG_RULEID_ASSIGN = 10081; // 订单分单
    public final static int CNHB_MSG_RULEID_ASSIGN_NO_LOGIN = 10082; // 订单分单-未登录
    public final static int CNHB_MSG_RULEID_TAKE = 10089; // 工程师领单
    public final static int CNHB_MSG_RULEID_MASTER_VISIT = 10246; // 工程师上门
    public final static int CNHB_MSG_RULEID_COMPLETE = 10126; // 工单完成
    public final static int CNHB_MSG_RULEID_CANCEL = 10094; // 工单取消
    public final static int CNHB_MSG_RULEID_WARRANTY_CARD = 10247; // 保修卡


    /**
     * 描述：工程师push消息 ruleId
     *
     * @see GlobalConsts#MASTER_APP_PUSH_TYPE_COMPLETE_REVIEW 替换
     */
    public final static int PUSH_MSG_RULEID_DISTRIBUTE = 10127; // 派单

    public final static int PUSH_MSG_RULEID_SERVICE_COMPLETE = 10147; // 服务审核失败
    public final static int PUSH_MSG_RULEID_APPLY_COUPON = 10138; // 优惠审核
    public final static int PUSH_MSG_RULEID_POST_EXPRESS = 10145; // 物流签收
    public final static int PUSH_MSG_RULEID_ORDER_PAY = 10170; // 工单支付通知
    public final static int PUSH_MSG_RULEID_VISIT_QR_CODE = 10168; // 上门扫码
    public final static int PUSH_MSG_RULEID_LDD_BONUS = 10169; // 计价器故障项报价


    // 场景待定 暂不应用
    public final static int PUSH_MSG_RULEID_ORDER_CANCEL = 10141; // 工单取消
    public final static int PUSH_MSG_RULEID_TAKE = 10107; // 领单


    /***
     * 描述：啄木鸟站内消息id 其他配置
     */
    public final static int ZMN_ONSITE_MSG_ID_MASTER_REVIEW = 1004; // 工程师审核通过发送站内消息id
    /***
     * 描述：收款未支付
     */
    public final static int ZMN_COLLECTION_NOT_PAY_MQ_CODE = 10613;



    /**
     * 言而有信 详情页面发送提醒短信-给用户发送的短信模板
     */
    public final static List<MessageTemplate> YEYX_MESSAGE_TO_USER_LIST = Lists.newArrayList(
            MessageTemplate.builder().groupId(10166).name("电话未接通/拒接").text("[言而有信]尊敬的用户，您购买的产品售后服务已受理，由于电话未接通无法确认上门时间，请您联系4000665315确认，祝您生活愉快。").build(),
            MessageTemplate.builder().groupId(10166).name("电话未接通/拒接（天猫）").text("[言而有信]尊敬的用户，您购买的天猫安维服务已受理，由于电话未接通无法确认上门时间，请您联系4000665315确认，祝您生活愉快。").channelIds("10133,31055").build(),
            MessageTemplate.builder().groupId(10166).name("电话未接通/拒接（北方同创）").text("[言而有信]尊敬的用户，您购买的产品售后服务已派单至网点，由于无法联系到您，请您及时联系4000665315提供服务核销码预约服务时间。").channelIds("10771,").build()
    );

    /**
     * 10083
     * 言而有信 详情页面发送提醒短信-给师傅发送的短信模板
     */
    public final static List<MessageTemplate> YEYX_MESSAGE_TO_MASTER_LIST = Lists.newArrayList(
            MessageTemplate.builder().groupId(10107).name("通知领单未接通").text("[言而有信]您有新的订单请注意查看，1小时内务必联系用户并操作APP预约时间，请勿屏蔽言而有信外呼电话，祝您工作愉快！").build(),
            MessageTemplate.builder().groupId(10108).name("用户催单联系师傅未接通").text("[言而有信]用户【客户电话】联系平台催单，请10分钟内与用户联系约定服务时间，避免客户投诉或差评。").build(),
            MessageTemplate.builder().groupId(10109).name("用户已到货联系师傅未接通").text("[言而有信]用户【客户电话】安装订单已到货，请10分钟内与用户联系约定服务时间，尽快完成服务。").build(),
            MessageTemplate.builder().groupId(10110).name("已领单（未联系）").text("[言而有信]请在10分钟内通过APP与用户【客户电话】联系，确定上门时间，并在APP备注上门时间和订单进度。").build(),
            MessageTemplate.builder().groupId(10111).name("预约当天订单").text("[言而有信]您与用户【客户电话】预约今日服务，请按约定时间准时上门，改约必须征得用户同意并备注改约时间和原因。").build(),
            MessageTemplate.builder().groupId(10112).name("已上门").text("[言而有信]请及时完结已上门订单，完单请根据订单要求进行拍照，有疑问请联系言而有信派单专员，如未回复拨打4000665315。").build()
    );
    /**
     * 联系超时消息 ruleCode
     */
    public final static String PUSH_MSG_CALL_OUT_STATUS_ALERT = "10135";
    /**
     * 领单超时消息 ruleCode
     */
    public final static String PUSH_MSG_TIME_OUT_TYPE_TAKE = "10134";
    /**
     * 上门超时消息 ruleCode
     */
    public final static String PUSH_MSG_TIME_OUT_TYPE_VISIT = "10137";
    /**
     * 完成超时消息 ruleCode
     */
    public final static String PUSH_MSG_TIME_OUT_TYPE_COMPLETE = "10139";


    /**
     * 领单预警消息 ruleCode
     */
    public final static String PUSH_MSG_WARNING_NOTICE_TAKE = "JJLDCS";
    /**
     * 联系预警消息 ruleCode
     */
    public final static String PUSH_MSG_WARNING_NOTICE_CONTACT = "JJLXCS";
    /**
     * 上门预警消息 ruleCode
     */
    public final static String PUSH_MSG_WARNING_NOTICE_VISIT = "10136";
    /**
     * 完成预警消息 ruleCode
     */
    public final static String PUSH_MSG_WARNING_NOTICE_COMPLETE = "JJWCCS";

}